/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.opgea.token.dao;

import java.util.Date;
import java.util.List;

import com.opgea.token.domain.entities.Token;
import com.opgea.token.domain.qualifiers.TokenStatusQualifier;

/**
 * 
 * @author Ramesh
 */
public interface TokenDAO {

    public Integer getMaxTokenNumber(Long companyId, String dateString);

    public Token create(Token token);

    public Token update(Token token);

    public Token find(Long id);

    public Token findByTokenNo(Long companyId, Integer tokenNo, Date date);

    public Token findAll();

    public List<Token> findAll(Long companyId, Date date);

    public List<Token> findAllByStatus(Long companyId, Date date,
	    TokenStatusQualifier qualifier);

    public List<Token> findTokensInQueue(Long companyId, Integer tokenNo);
}
